Setting up a gumstix SD Card
My notes, based on http://gumstix.org/create-a-bootable-microsd-card.html
fdisk -l /dev/sdd Disk /dev/sdd: 32.2 GB, 32191283200 bytes 255 heads, 63 sectors/track, 3913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdd1 1 3914 31432704 c W95 FAT32 (LBA)
Calculate number of cylinders required:
root@ubuntu:~# bc -l bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 32191283200/255/63/512 3913.70059134765017117958 quit
Wipe the SD card:
root@ubuntu:~# dd if=/dev/zero of=/dev/sdd bs=1024 count=1024 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB) copied, 2.84156 s, 369 kB/s
Parition the disk:
root@ubuntu:~# sfdisk --force -D -uS -H 255 -S 63 -C 3913 /dev/sdd Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 3913 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an MSDOS signature /dev/sdd: unrecognised partition table type Old situation: No partitions found Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sdd1 :128,130944,0x0C,* /dev/sdd1 * 128 131071 130944 c W95 FAT32 (LBA) /dev/sdd2 :131072,,,- /dev/sdd2 131072 62873599 62742528 83 Linux /dev/sdd3 : /dev/sdd3 1 127 127 83 Linux /dev/sdd4 : /dev/sdd4 0 - 0 0 Empty New situation: Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sdd1 * 128 131071 130944 c W95 FAT32 (LBA) /dev/sdd2 131072 62873599 62742528 83 Linux /dev/sdd3 1 127 127 83 Linux /dev/sdd4 0 - 0 0 Empty Warning: partition 1 does not end at a cylinder boundary Do you want to write this to disk? [ynq] y Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Format the paritions:
root@ubuntu:~# mkfs.vfat -F 32 /dev/sdd1 -n boot mkfs.vfat 3.0.7 (24 Dec 2009) root@ubuntu:~# mke2fs -j -L rootfs /dev/sdd2 mke2fs 1.41.11 (14-Mar-2010) Filesystem label=rootfs OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1962240 inodes, 7842816 blocks 392140 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 240 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Mount the partitions and copy the current root to them:
root@ubuntu:~# sudo mkdir /media/{boot,rootfs} root@ubuntu:~# sudo mount -t vfat /dev/sdd1 /media/boot root@ubuntu:~# sudo mount -t ext3 /dev/sdd2 /media/rootfs root@ubuntu:~# cd /media/boot/ root@ubuntu:/media/boot# ls root@ubuntu:/media/boot# cd ~ root@ubuntu:~# wget http://cumulus.gumstix.org/images/angstrom/developer/current/MLO --2011-11-21 11:31:12-- http://cumulus.gumstix.org/images/angstrom/developer/current/MLO Resolving cumulus.gumstix.org... 74.3.164.55 Connecting to cumulus.gumstix.org|74.3.164.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 24304 (24K) Saving to: `MLO' 100% 24,304 49.8K/s in 0.5s 2011-11-21 11:31:13 (49.8 KB/s) - `MLO' saved [24304/24304] root@ubuntu:~# mv MLO /media/boot root@ubuntu:~# wget http://cumulus.gumstix.org/images/angstrom/developer/current/u-boot.bin --2011-11-21 11:31:48-- http://cumulus.gumstix.org/images/angstrom/developer/current/u-boot.bin Resolving cumulus.gumstix.org... 74.3.164.55 Connecting to cumulus.gumstix.org|74.3.164.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 269120 (263K) [application/octet-stream] Saving to: `u-boot.bin' 100% 269,120 199K/s in 1.3s 2011-11-21 11:31:49 (199 KB/s) - `u-boot.bin' saved [269120/269120] root@ubuntu:~# mv u-boot.bin /media/boot root@ubuntu:~# wget http://cumulus.gumstix.org/images/angstrom/developer/current/uImage --2011-11-21 11:32:08-- http://cumulus.gumstix.org/images/angstrom/developer/current/uImage Resolving cumulus.gumstix.org... 74.3.164.55 Connecting to cumulus.gumstix.org|74.3.164.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3091308 (2.9M) Saving to: `uImage' 100% 3,091,308 205K/s in 15s 2011-11-21 11:32:23 (196 KB/s) - `uImage' saved [3091308/3091308] root@ubuntu:~# mv uImage /media/boot root@ubuntu:~# wget http://cumulus.gumstix.org/images/angstrom/developer/current/omap3-desktop-image-overo.tar.bz2 --2011-11-21 11:34:06-- http://cumulus.gumstix.org/images/angstrom/developer/current/omap3-desktop-image-overo.tar.bz2 Resolving cumulus.gumstix.org... 74.3.164.55 Connecting to cumulus.gumstix.org|74.3.164.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 234752536 (224M) [application/x-bzip2] Saving to: `omap3-desktop-image-overo.tar.bz2' 100% 234,752,536 396K/s in 13m 58s 2011-11-21 11:48:04 (274 KB/s) - `omap3-desktop-image-overo.tar.bz2' saved [234752536/234752536] root@ubuntu:~# tar xaf omap3-desktop-image-overo.tar.bz2 -C /media/rootfs root@ubuntu:~# ls /media/rootfs/ bin boot dev etc home lib linuxrc lost+found media mnt proc sbin sys tmp usr var root@ubuntu:~# sync root@ubuntu:~# umount /media/boot root@ubuntu:~# umount /media/rootfs
Network config
If your using a board with a network interface and want to use this at first boot:
edit /etc/network/interfaces
Add the following for a static config:
auto eth0 iface eth0 inet static address 192.168.0.7 netmask 255.255.255.0 gateway 192.168.0.254
or uncomment the following for a dynamic config:
auto eth0 iface eth0 inet dhcp
Fin